package br.ufrn.dimap.MetricDslLanguage.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import br.ufrn.dimap.MetricDslLanguage.services.MetricDslGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalMetricDslParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'hardData'", "'softData'", "'normalizedData'", "'continuous'", "'intercalated'", "'minutes'", "'uc'", "'numbers'", "'relates'", "'description'", "'type'", "'form'", "'id'", "'unit'", "'activityBegin'", "'activityEnd'", "'tasks'", "'artefacts'"
    };
    public static final int RULE_ID=5;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int RULE_SL_COMMENT=8;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__19=19;
    public static final int RULE_STRING=4;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=6;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalMetricDslParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalMetricDslParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalMetricDslParser.tokenNames; }
    public String getGrammarFileName() { return "../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g"; }


     
     	private MetricDslGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(MetricDslGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleModel"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:60:1: entryRuleModel : ruleModel EOF ;
    public final void entryRuleModel() throws RecognitionException {
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:61:1: ( ruleModel EOF )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:62:1: ruleModel EOF
            {
             before(grammarAccess.getModelRule()); 
            pushFollow(FOLLOW_ruleModel_in_entryRuleModel61);
            ruleModel();

            state._fsp--;

             after(grammarAccess.getModelRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleModel68); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleModel"


    // $ANTLR start "ruleModel"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:69:1: ruleModel : ( ( rule__Model__MetricsAssignment )* ) ;
    public final void ruleModel() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:73:2: ( ( ( rule__Model__MetricsAssignment )* ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:74:1: ( ( rule__Model__MetricsAssignment )* )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:74:1: ( ( rule__Model__MetricsAssignment )* )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:75:1: ( rule__Model__MetricsAssignment )*
            {
             before(grammarAccess.getModelAccess().getMetricsAssignment()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:76:1: ( rule__Model__MetricsAssignment )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==RULE_STRING) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:76:2: rule__Model__MetricsAssignment
            	    {
            	    pushFollow(FOLLOW_rule__Model__MetricsAssignment_in_ruleModel94);
            	    rule__Model__MetricsAssignment();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

             after(grammarAccess.getModelAccess().getMetricsAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleModel"


    // $ANTLR start "entryRuleMetrics"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:88:1: entryRuleMetrics : ruleMetrics EOF ;
    public final void entryRuleMetrics() throws RecognitionException {
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:89:1: ( ruleMetrics EOF )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:90:1: ruleMetrics EOF
            {
             before(grammarAccess.getMetricsRule()); 
            pushFollow(FOLLOW_ruleMetrics_in_entryRuleMetrics122);
            ruleMetrics();

            state._fsp--;

             after(grammarAccess.getMetricsRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMetrics129); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleMetrics"


    // $ANTLR start "ruleMetrics"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:97:1: ruleMetrics : ( ( rule__Metrics__Group__0 ) ) ;
    public final void ruleMetrics() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:101:2: ( ( ( rule__Metrics__Group__0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:102:1: ( ( rule__Metrics__Group__0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:102:1: ( ( rule__Metrics__Group__0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:103:1: ( rule__Metrics__Group__0 )
            {
             before(grammarAccess.getMetricsAccess().getGroup()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:104:1: ( rule__Metrics__Group__0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:104:2: rule__Metrics__Group__0
            {
            pushFollow(FOLLOW_rule__Metrics__Group__0_in_ruleMetrics155);
            rule__Metrics__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMetrics"


    // $ANTLR start "entryRuleActivityMetric"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:116:1: entryRuleActivityMetric : ruleActivityMetric EOF ;
    public final void entryRuleActivityMetric() throws RecognitionException {
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:117:1: ( ruleActivityMetric EOF )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:118:1: ruleActivityMetric EOF
            {
             before(grammarAccess.getActivityMetricRule()); 
            pushFollow(FOLLOW_ruleActivityMetric_in_entryRuleActivityMetric182);
            ruleActivityMetric();

            state._fsp--;

             after(grammarAccess.getActivityMetricRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleActivityMetric189); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleActivityMetric"


    // $ANTLR start "ruleActivityMetric"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:125:1: ruleActivityMetric : ( ( rule__ActivityMetric__Group__0 ) ) ;
    public final void ruleActivityMetric() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:129:2: ( ( ( rule__ActivityMetric__Group__0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:130:1: ( ( rule__ActivityMetric__Group__0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:130:1: ( ( rule__ActivityMetric__Group__0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:131:1: ( rule__ActivityMetric__Group__0 )
            {
             before(grammarAccess.getActivityMetricAccess().getGroup()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:132:1: ( rule__ActivityMetric__Group__0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:132:2: rule__ActivityMetric__Group__0
            {
            pushFollow(FOLLOW_rule__ActivityMetric__Group__0_in_ruleActivityMetric215);
            rule__ActivityMetric__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getActivityMetricAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleActivityMetric"


    // $ANTLR start "entryRuleTaskMetric"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:144:1: entryRuleTaskMetric : ruleTaskMetric EOF ;
    public final void entryRuleTaskMetric() throws RecognitionException {
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:145:1: ( ruleTaskMetric EOF )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:146:1: ruleTaskMetric EOF
            {
             before(grammarAccess.getTaskMetricRule()); 
            pushFollow(FOLLOW_ruleTaskMetric_in_entryRuleTaskMetric242);
            ruleTaskMetric();

            state._fsp--;

             after(grammarAccess.getTaskMetricRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTaskMetric249); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTaskMetric"


    // $ANTLR start "ruleTaskMetric"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:153:1: ruleTaskMetric : ( ( rule__TaskMetric__Group__0 ) ) ;
    public final void ruleTaskMetric() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:157:2: ( ( ( rule__TaskMetric__Group__0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:158:1: ( ( rule__TaskMetric__Group__0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:158:1: ( ( rule__TaskMetric__Group__0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:159:1: ( rule__TaskMetric__Group__0 )
            {
             before(grammarAccess.getTaskMetricAccess().getGroup()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:160:1: ( rule__TaskMetric__Group__0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:160:2: rule__TaskMetric__Group__0
            {
            pushFollow(FOLLOW_rule__TaskMetric__Group__0_in_ruleTaskMetric275);
            rule__TaskMetric__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getTaskMetricAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTaskMetric"


    // $ANTLR start "entryRuleArtefactMetric"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:172:1: entryRuleArtefactMetric : ruleArtefactMetric EOF ;
    public final void entryRuleArtefactMetric() throws RecognitionException {
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:173:1: ( ruleArtefactMetric EOF )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:174:1: ruleArtefactMetric EOF
            {
             before(grammarAccess.getArtefactMetricRule()); 
            pushFollow(FOLLOW_ruleArtefactMetric_in_entryRuleArtefactMetric302);
            ruleArtefactMetric();

            state._fsp--;

             after(grammarAccess.getArtefactMetricRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleArtefactMetric309); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleArtefactMetric"


    // $ANTLR start "ruleArtefactMetric"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:181:1: ruleArtefactMetric : ( ( rule__ArtefactMetric__Group__0 ) ) ;
    public final void ruleArtefactMetric() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:185:2: ( ( ( rule__ArtefactMetric__Group__0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:186:1: ( ( rule__ArtefactMetric__Group__0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:186:1: ( ( rule__ArtefactMetric__Group__0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:187:1: ( rule__ArtefactMetric__Group__0 )
            {
             before(grammarAccess.getArtefactMetricAccess().getGroup()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:188:1: ( rule__ArtefactMetric__Group__0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:188:2: rule__ArtefactMetric__Group__0
            {
            pushFollow(FOLLOW_rule__ArtefactMetric__Group__0_in_ruleArtefactMetric335);
            rule__ArtefactMetric__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getArtefactMetricAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleArtefactMetric"


    // $ANTLR start "ruleMetricType"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:201:1: ruleMetricType : ( ( rule__MetricType__Alternatives ) ) ;
    public final void ruleMetricType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:205:1: ( ( ( rule__MetricType__Alternatives ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:206:1: ( ( rule__MetricType__Alternatives ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:206:1: ( ( rule__MetricType__Alternatives ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:207:1: ( rule__MetricType__Alternatives )
            {
             before(grammarAccess.getMetricTypeAccess().getAlternatives()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:208:1: ( rule__MetricType__Alternatives )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:208:2: rule__MetricType__Alternatives
            {
            pushFollow(FOLLOW_rule__MetricType__Alternatives_in_ruleMetricType372);
            rule__MetricType__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getMetricTypeAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMetricType"


    // $ANTLR start "ruleColectType"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:220:1: ruleColectType : ( ( rule__ColectType__Alternatives ) ) ;
    public final void ruleColectType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:224:1: ( ( ( rule__ColectType__Alternatives ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:225:1: ( ( rule__ColectType__Alternatives ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:225:1: ( ( rule__ColectType__Alternatives ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:226:1: ( rule__ColectType__Alternatives )
            {
             before(grammarAccess.getColectTypeAccess().getAlternatives()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:227:1: ( rule__ColectType__Alternatives )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:227:2: rule__ColectType__Alternatives
            {
            pushFollow(FOLLOW_rule__ColectType__Alternatives_in_ruleColectType408);
            rule__ColectType__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getColectTypeAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleColectType"


    // $ANTLR start "ruleMetricUnit"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:239:1: ruleMetricUnit : ( ( rule__MetricUnit__Alternatives ) ) ;
    public final void ruleMetricUnit() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:243:1: ( ( ( rule__MetricUnit__Alternatives ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:244:1: ( ( rule__MetricUnit__Alternatives ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:244:1: ( ( rule__MetricUnit__Alternatives ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:245:1: ( rule__MetricUnit__Alternatives )
            {
             before(grammarAccess.getMetricUnitAccess().getAlternatives()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:246:1: ( rule__MetricUnit__Alternatives )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:246:2: rule__MetricUnit__Alternatives
            {
            pushFollow(FOLLOW_rule__MetricUnit__Alternatives_in_ruleMetricUnit444);
            rule__MetricUnit__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getMetricUnitAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMetricUnit"


    // $ANTLR start "rule__Metrics__DetailsAlternatives_8_0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:257:1: rule__Metrics__DetailsAlternatives_8_0 : ( ( ruleActivityMetric ) | ( ruleTaskMetric ) | ( ruleArtefactMetric ) );
    public final void rule__Metrics__DetailsAlternatives_8_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:261:1: ( ( ruleActivityMetric ) | ( ruleTaskMetric ) | ( ruleArtefactMetric ) )
            int alt2=3;
            switch ( input.LA(1) ) {
            case 25:
                {
                alt2=1;
                }
                break;
            case 27:
                {
                alt2=2;
                }
                break;
            case 28:
                {
                alt2=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:262:1: ( ruleActivityMetric )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:262:1: ( ruleActivityMetric )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:263:1: ruleActivityMetric
                    {
                     before(grammarAccess.getMetricsAccess().getDetailsActivityMetricParserRuleCall_8_0_0()); 
                    pushFollow(FOLLOW_ruleActivityMetric_in_rule__Metrics__DetailsAlternatives_8_0479);
                    ruleActivityMetric();

                    state._fsp--;

                     after(grammarAccess.getMetricsAccess().getDetailsActivityMetricParserRuleCall_8_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:268:6: ( ruleTaskMetric )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:268:6: ( ruleTaskMetric )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:269:1: ruleTaskMetric
                    {
                     before(grammarAccess.getMetricsAccess().getDetailsTaskMetricParserRuleCall_8_0_1()); 
                    pushFollow(FOLLOW_ruleTaskMetric_in_rule__Metrics__DetailsAlternatives_8_0496);
                    ruleTaskMetric();

                    state._fsp--;

                     after(grammarAccess.getMetricsAccess().getDetailsTaskMetricParserRuleCall_8_0_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:274:6: ( ruleArtefactMetric )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:274:6: ( ruleArtefactMetric )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:275:1: ruleArtefactMetric
                    {
                     before(grammarAccess.getMetricsAccess().getDetailsArtefactMetricParserRuleCall_8_0_2()); 
                    pushFollow(FOLLOW_ruleArtefactMetric_in_rule__Metrics__DetailsAlternatives_8_0513);
                    ruleArtefactMetric();

                    state._fsp--;

                     after(grammarAccess.getMetricsAccess().getDetailsArtefactMetricParserRuleCall_8_0_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__DetailsAlternatives_8_0"


    // $ANTLR start "rule__MetricType__Alternatives"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:285:1: rule__MetricType__Alternatives : ( ( ( 'hardData' ) ) | ( ( 'softData' ) ) | ( ( 'normalizedData' ) ) );
    public final void rule__MetricType__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:289:1: ( ( ( 'hardData' ) ) | ( ( 'softData' ) ) | ( ( 'normalizedData' ) ) )
            int alt3=3;
            switch ( input.LA(1) ) {
            case 11:
                {
                alt3=1;
                }
                break;
            case 12:
                {
                alt3=2;
                }
                break;
            case 13:
                {
                alt3=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }

            switch (alt3) {
                case 1 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:290:1: ( ( 'hardData' ) )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:290:1: ( ( 'hardData' ) )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:291:1: ( 'hardData' )
                    {
                     before(grammarAccess.getMetricTypeAccess().getHardDataEnumLiteralDeclaration_0()); 
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:292:1: ( 'hardData' )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:292:3: 'hardData'
                    {
                    match(input,11,FOLLOW_11_in_rule__MetricType__Alternatives546); 

                    }

                     after(grammarAccess.getMetricTypeAccess().getHardDataEnumLiteralDeclaration_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:297:6: ( ( 'softData' ) )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:297:6: ( ( 'softData' ) )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:298:1: ( 'softData' )
                    {
                     before(grammarAccess.getMetricTypeAccess().getSoftDataEnumLiteralDeclaration_1()); 
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:299:1: ( 'softData' )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:299:3: 'softData'
                    {
                    match(input,12,FOLLOW_12_in_rule__MetricType__Alternatives567); 

                    }

                     after(grammarAccess.getMetricTypeAccess().getSoftDataEnumLiteralDeclaration_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:304:6: ( ( 'normalizedData' ) )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:304:6: ( ( 'normalizedData' ) )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:305:1: ( 'normalizedData' )
                    {
                     before(grammarAccess.getMetricTypeAccess().getNormalizedDataEnumLiteralDeclaration_2()); 
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:306:1: ( 'normalizedData' )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:306:3: 'normalizedData'
                    {
                    match(input,13,FOLLOW_13_in_rule__MetricType__Alternatives588); 

                    }

                     after(grammarAccess.getMetricTypeAccess().getNormalizedDataEnumLiteralDeclaration_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MetricType__Alternatives"


    // $ANTLR start "rule__ColectType__Alternatives"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:316:1: rule__ColectType__Alternatives : ( ( ( 'continuous' ) ) | ( ( 'intercalated' ) ) );
    public final void rule__ColectType__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:320:1: ( ( ( 'continuous' ) ) | ( ( 'intercalated' ) ) )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==14) ) {
                alt4=1;
            }
            else if ( (LA4_0==15) ) {
                alt4=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:321:1: ( ( 'continuous' ) )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:321:1: ( ( 'continuous' ) )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:322:1: ( 'continuous' )
                    {
                     before(grammarAccess.getColectTypeAccess().getContinuousEnumLiteralDeclaration_0()); 
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:323:1: ( 'continuous' )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:323:3: 'continuous'
                    {
                    match(input,14,FOLLOW_14_in_rule__ColectType__Alternatives624); 

                    }

                     after(grammarAccess.getColectTypeAccess().getContinuousEnumLiteralDeclaration_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:328:6: ( ( 'intercalated' ) )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:328:6: ( ( 'intercalated' ) )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:329:1: ( 'intercalated' )
                    {
                     before(grammarAccess.getColectTypeAccess().getIntercalatedEnumLiteralDeclaration_1()); 
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:330:1: ( 'intercalated' )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:330:3: 'intercalated'
                    {
                    match(input,15,FOLLOW_15_in_rule__ColectType__Alternatives645); 

                    }

                     after(grammarAccess.getColectTypeAccess().getIntercalatedEnumLiteralDeclaration_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ColectType__Alternatives"


    // $ANTLR start "rule__MetricUnit__Alternatives"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:340:1: rule__MetricUnit__Alternatives : ( ( ( 'minutes' ) ) | ( ( 'uc' ) ) | ( ( 'numbers' ) ) );
    public final void rule__MetricUnit__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:344:1: ( ( ( 'minutes' ) ) | ( ( 'uc' ) ) | ( ( 'numbers' ) ) )
            int alt5=3;
            switch ( input.LA(1) ) {
            case 16:
                {
                alt5=1;
                }
                break;
            case 17:
                {
                alt5=2;
                }
                break;
            case 18:
                {
                alt5=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }

            switch (alt5) {
                case 1 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:345:1: ( ( 'minutes' ) )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:345:1: ( ( 'minutes' ) )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:346:1: ( 'minutes' )
                    {
                     before(grammarAccess.getMetricUnitAccess().getMinutesEnumLiteralDeclaration_0()); 
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:347:1: ( 'minutes' )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:347:3: 'minutes'
                    {
                    match(input,16,FOLLOW_16_in_rule__MetricUnit__Alternatives681); 

                    }

                     after(grammarAccess.getMetricUnitAccess().getMinutesEnumLiteralDeclaration_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:352:6: ( ( 'uc' ) )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:352:6: ( ( 'uc' ) )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:353:1: ( 'uc' )
                    {
                     before(grammarAccess.getMetricUnitAccess().getUcEnumLiteralDeclaration_1()); 
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:354:1: ( 'uc' )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:354:3: 'uc'
                    {
                    match(input,17,FOLLOW_17_in_rule__MetricUnit__Alternatives702); 

                    }

                     after(grammarAccess.getMetricUnitAccess().getUcEnumLiteralDeclaration_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:359:6: ( ( 'numbers' ) )
                    {
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:359:6: ( ( 'numbers' ) )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:360:1: ( 'numbers' )
                    {
                     before(grammarAccess.getMetricUnitAccess().getNumbersEnumLiteralDeclaration_2()); 
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:361:1: ( 'numbers' )
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:361:3: 'numbers'
                    {
                    match(input,18,FOLLOW_18_in_rule__MetricUnit__Alternatives723); 

                    }

                     after(grammarAccess.getMetricUnitAccess().getNumbersEnumLiteralDeclaration_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MetricUnit__Alternatives"


    // $ANTLR start "rule__Metrics__Group__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:373:1: rule__Metrics__Group__0 : rule__Metrics__Group__0__Impl rule__Metrics__Group__1 ;
    public final void rule__Metrics__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:377:1: ( rule__Metrics__Group__0__Impl rule__Metrics__Group__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:378:2: rule__Metrics__Group__0__Impl rule__Metrics__Group__1
            {
            pushFollow(FOLLOW_rule__Metrics__Group__0__Impl_in_rule__Metrics__Group__0756);
            rule__Metrics__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group__1_in_rule__Metrics__Group__0759);
            rule__Metrics__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__0"


    // $ANTLR start "rule__Metrics__Group__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:385:1: rule__Metrics__Group__0__Impl : ( ( rule__Metrics__NameAssignment_0 ) ) ;
    public final void rule__Metrics__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:389:1: ( ( ( rule__Metrics__NameAssignment_0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:390:1: ( ( rule__Metrics__NameAssignment_0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:390:1: ( ( rule__Metrics__NameAssignment_0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:391:1: ( rule__Metrics__NameAssignment_0 )
            {
             before(grammarAccess.getMetricsAccess().getNameAssignment_0()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:392:1: ( rule__Metrics__NameAssignment_0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:392:2: rule__Metrics__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__Metrics__NameAssignment_0_in_rule__Metrics__Group__0__Impl786);
            rule__Metrics__NameAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getNameAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__0__Impl"


    // $ANTLR start "rule__Metrics__Group__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:402:1: rule__Metrics__Group__1 : rule__Metrics__Group__1__Impl rule__Metrics__Group__2 ;
    public final void rule__Metrics__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:406:1: ( rule__Metrics__Group__1__Impl rule__Metrics__Group__2 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:407:2: rule__Metrics__Group__1__Impl rule__Metrics__Group__2
            {
            pushFollow(FOLLOW_rule__Metrics__Group__1__Impl_in_rule__Metrics__Group__1816);
            rule__Metrics__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group__2_in_rule__Metrics__Group__1819);
            rule__Metrics__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__1"


    // $ANTLR start "rule__Metrics__Group__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:414:1: rule__Metrics__Group__1__Impl : ( 'relates' ) ;
    public final void rule__Metrics__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:418:1: ( ( 'relates' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:419:1: ( 'relates' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:419:1: ( 'relates' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:420:1: 'relates'
            {
             before(grammarAccess.getMetricsAccess().getRelatesKeyword_1()); 
            match(input,19,FOLLOW_19_in_rule__Metrics__Group__1__Impl847); 
             after(grammarAccess.getMetricsAccess().getRelatesKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__1__Impl"


    // $ANTLR start "rule__Metrics__Group__2"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:433:1: rule__Metrics__Group__2 : rule__Metrics__Group__2__Impl rule__Metrics__Group__3 ;
    public final void rule__Metrics__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:437:1: ( rule__Metrics__Group__2__Impl rule__Metrics__Group__3 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:438:2: rule__Metrics__Group__2__Impl rule__Metrics__Group__3
            {
            pushFollow(FOLLOW_rule__Metrics__Group__2__Impl_in_rule__Metrics__Group__2878);
            rule__Metrics__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group__3_in_rule__Metrics__Group__2881);
            rule__Metrics__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__2"


    // $ANTLR start "rule__Metrics__Group__2__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:445:1: rule__Metrics__Group__2__Impl : ( ( rule__Metrics__RelatesToAssignment_2 ) ) ;
    public final void rule__Metrics__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:449:1: ( ( ( rule__Metrics__RelatesToAssignment_2 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:450:1: ( ( rule__Metrics__RelatesToAssignment_2 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:450:1: ( ( rule__Metrics__RelatesToAssignment_2 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:451:1: ( rule__Metrics__RelatesToAssignment_2 )
            {
             before(grammarAccess.getMetricsAccess().getRelatesToAssignment_2()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:452:1: ( rule__Metrics__RelatesToAssignment_2 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:452:2: rule__Metrics__RelatesToAssignment_2
            {
            pushFollow(FOLLOW_rule__Metrics__RelatesToAssignment_2_in_rule__Metrics__Group__2__Impl908);
            rule__Metrics__RelatesToAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getRelatesToAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__2__Impl"


    // $ANTLR start "rule__Metrics__Group__3"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:462:1: rule__Metrics__Group__3 : rule__Metrics__Group__3__Impl rule__Metrics__Group__4 ;
    public final void rule__Metrics__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:466:1: ( rule__Metrics__Group__3__Impl rule__Metrics__Group__4 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:467:2: rule__Metrics__Group__3__Impl rule__Metrics__Group__4
            {
            pushFollow(FOLLOW_rule__Metrics__Group__3__Impl_in_rule__Metrics__Group__3938);
            rule__Metrics__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group__4_in_rule__Metrics__Group__3941);
            rule__Metrics__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__3"


    // $ANTLR start "rule__Metrics__Group__3__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:474:1: rule__Metrics__Group__3__Impl : ( ( rule__Metrics__Group_3__0 ) ) ;
    public final void rule__Metrics__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:478:1: ( ( ( rule__Metrics__Group_3__0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:479:1: ( ( rule__Metrics__Group_3__0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:479:1: ( ( rule__Metrics__Group_3__0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:480:1: ( rule__Metrics__Group_3__0 )
            {
             before(grammarAccess.getMetricsAccess().getGroup_3()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:481:1: ( rule__Metrics__Group_3__0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:481:2: rule__Metrics__Group_3__0
            {
            pushFollow(FOLLOW_rule__Metrics__Group_3__0_in_rule__Metrics__Group__3__Impl968);
            rule__Metrics__Group_3__0();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getGroup_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__3__Impl"


    // $ANTLR start "rule__Metrics__Group__4"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:491:1: rule__Metrics__Group__4 : rule__Metrics__Group__4__Impl rule__Metrics__Group__5 ;
    public final void rule__Metrics__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:495:1: ( rule__Metrics__Group__4__Impl rule__Metrics__Group__5 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:496:2: rule__Metrics__Group__4__Impl rule__Metrics__Group__5
            {
            pushFollow(FOLLOW_rule__Metrics__Group__4__Impl_in_rule__Metrics__Group__4998);
            rule__Metrics__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group__5_in_rule__Metrics__Group__41001);
            rule__Metrics__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__4"


    // $ANTLR start "rule__Metrics__Group__4__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:503:1: rule__Metrics__Group__4__Impl : ( ( rule__Metrics__Group_4__0 ) ) ;
    public final void rule__Metrics__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:507:1: ( ( ( rule__Metrics__Group_4__0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:508:1: ( ( rule__Metrics__Group_4__0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:508:1: ( ( rule__Metrics__Group_4__0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:509:1: ( rule__Metrics__Group_4__0 )
            {
             before(grammarAccess.getMetricsAccess().getGroup_4()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:510:1: ( rule__Metrics__Group_4__0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:510:2: rule__Metrics__Group_4__0
            {
            pushFollow(FOLLOW_rule__Metrics__Group_4__0_in_rule__Metrics__Group__4__Impl1028);
            rule__Metrics__Group_4__0();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getGroup_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__4__Impl"


    // $ANTLR start "rule__Metrics__Group__5"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:520:1: rule__Metrics__Group__5 : rule__Metrics__Group__5__Impl rule__Metrics__Group__6 ;
    public final void rule__Metrics__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:524:1: ( rule__Metrics__Group__5__Impl rule__Metrics__Group__6 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:525:2: rule__Metrics__Group__5__Impl rule__Metrics__Group__6
            {
            pushFollow(FOLLOW_rule__Metrics__Group__5__Impl_in_rule__Metrics__Group__51058);
            rule__Metrics__Group__5__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group__6_in_rule__Metrics__Group__51061);
            rule__Metrics__Group__6();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__5"


    // $ANTLR start "rule__Metrics__Group__5__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:532:1: rule__Metrics__Group__5__Impl : ( ( rule__Metrics__Group_5__0 )? ) ;
    public final void rule__Metrics__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:536:1: ( ( ( rule__Metrics__Group_5__0 )? ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:537:1: ( ( rule__Metrics__Group_5__0 )? )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:537:1: ( ( rule__Metrics__Group_5__0 )? )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:538:1: ( rule__Metrics__Group_5__0 )?
            {
             before(grammarAccess.getMetricsAccess().getGroup_5()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:539:1: ( rule__Metrics__Group_5__0 )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==22) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:539:2: rule__Metrics__Group_5__0
                    {
                    pushFollow(FOLLOW_rule__Metrics__Group_5__0_in_rule__Metrics__Group__5__Impl1088);
                    rule__Metrics__Group_5__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getMetricsAccess().getGroup_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__5__Impl"


    // $ANTLR start "rule__Metrics__Group__6"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:549:1: rule__Metrics__Group__6 : rule__Metrics__Group__6__Impl rule__Metrics__Group__7 ;
    public final void rule__Metrics__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:553:1: ( rule__Metrics__Group__6__Impl rule__Metrics__Group__7 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:554:2: rule__Metrics__Group__6__Impl rule__Metrics__Group__7
            {
            pushFollow(FOLLOW_rule__Metrics__Group__6__Impl_in_rule__Metrics__Group__61119);
            rule__Metrics__Group__6__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group__7_in_rule__Metrics__Group__61122);
            rule__Metrics__Group__7();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__6"


    // $ANTLR start "rule__Metrics__Group__6__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:561:1: rule__Metrics__Group__6__Impl : ( ( rule__Metrics__Group_6__0 ) ) ;
    public final void rule__Metrics__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:565:1: ( ( ( rule__Metrics__Group_6__0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:566:1: ( ( rule__Metrics__Group_6__0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:566:1: ( ( rule__Metrics__Group_6__0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:567:1: ( rule__Metrics__Group_6__0 )
            {
             before(grammarAccess.getMetricsAccess().getGroup_6()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:568:1: ( rule__Metrics__Group_6__0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:568:2: rule__Metrics__Group_6__0
            {
            pushFollow(FOLLOW_rule__Metrics__Group_6__0_in_rule__Metrics__Group__6__Impl1149);
            rule__Metrics__Group_6__0();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getGroup_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__6__Impl"


    // $ANTLR start "rule__Metrics__Group__7"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:578:1: rule__Metrics__Group__7 : rule__Metrics__Group__7__Impl rule__Metrics__Group__8 ;
    public final void rule__Metrics__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:582:1: ( rule__Metrics__Group__7__Impl rule__Metrics__Group__8 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:583:2: rule__Metrics__Group__7__Impl rule__Metrics__Group__8
            {
            pushFollow(FOLLOW_rule__Metrics__Group__7__Impl_in_rule__Metrics__Group__71179);
            rule__Metrics__Group__7__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group__8_in_rule__Metrics__Group__71182);
            rule__Metrics__Group__8();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__7"


    // $ANTLR start "rule__Metrics__Group__7__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:590:1: rule__Metrics__Group__7__Impl : ( ( rule__Metrics__Group_7__0 )? ) ;
    public final void rule__Metrics__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:594:1: ( ( ( rule__Metrics__Group_7__0 )? ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:595:1: ( ( rule__Metrics__Group_7__0 )? )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:595:1: ( ( rule__Metrics__Group_7__0 )? )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:596:1: ( rule__Metrics__Group_7__0 )?
            {
             before(grammarAccess.getMetricsAccess().getGroup_7()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:597:1: ( rule__Metrics__Group_7__0 )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==24) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:597:2: rule__Metrics__Group_7__0
                    {
                    pushFollow(FOLLOW_rule__Metrics__Group_7__0_in_rule__Metrics__Group__7__Impl1209);
                    rule__Metrics__Group_7__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getMetricsAccess().getGroup_7()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__7__Impl"


    // $ANTLR start "rule__Metrics__Group__8"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:607:1: rule__Metrics__Group__8 : rule__Metrics__Group__8__Impl ;
    public final void rule__Metrics__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:611:1: ( rule__Metrics__Group__8__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:612:2: rule__Metrics__Group__8__Impl
            {
            pushFollow(FOLLOW_rule__Metrics__Group__8__Impl_in_rule__Metrics__Group__81240);
            rule__Metrics__Group__8__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__8"


    // $ANTLR start "rule__Metrics__Group__8__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:618:1: rule__Metrics__Group__8__Impl : ( ( rule__Metrics__DetailsAssignment_8 ) ) ;
    public final void rule__Metrics__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:622:1: ( ( ( rule__Metrics__DetailsAssignment_8 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:623:1: ( ( rule__Metrics__DetailsAssignment_8 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:623:1: ( ( rule__Metrics__DetailsAssignment_8 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:624:1: ( rule__Metrics__DetailsAssignment_8 )
            {
             before(grammarAccess.getMetricsAccess().getDetailsAssignment_8()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:625:1: ( rule__Metrics__DetailsAssignment_8 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:625:2: rule__Metrics__DetailsAssignment_8
            {
            pushFollow(FOLLOW_rule__Metrics__DetailsAssignment_8_in_rule__Metrics__Group__8__Impl1267);
            rule__Metrics__DetailsAssignment_8();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getDetailsAssignment_8()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group__8__Impl"


    // $ANTLR start "rule__Metrics__Group_3__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:653:1: rule__Metrics__Group_3__0 : rule__Metrics__Group_3__0__Impl rule__Metrics__Group_3__1 ;
    public final void rule__Metrics__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:657:1: ( rule__Metrics__Group_3__0__Impl rule__Metrics__Group_3__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:658:2: rule__Metrics__Group_3__0__Impl rule__Metrics__Group_3__1
            {
            pushFollow(FOLLOW_rule__Metrics__Group_3__0__Impl_in_rule__Metrics__Group_3__01315);
            rule__Metrics__Group_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group_3__1_in_rule__Metrics__Group_3__01318);
            rule__Metrics__Group_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_3__0"


    // $ANTLR start "rule__Metrics__Group_3__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:665:1: rule__Metrics__Group_3__0__Impl : ( 'description' ) ;
    public final void rule__Metrics__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:669:1: ( ( 'description' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:670:1: ( 'description' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:670:1: ( 'description' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:671:1: 'description'
            {
             before(grammarAccess.getMetricsAccess().getDescriptionKeyword_3_0()); 
            match(input,20,FOLLOW_20_in_rule__Metrics__Group_3__0__Impl1346); 
             after(grammarAccess.getMetricsAccess().getDescriptionKeyword_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_3__0__Impl"


    // $ANTLR start "rule__Metrics__Group_3__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:684:1: rule__Metrics__Group_3__1 : rule__Metrics__Group_3__1__Impl ;
    public final void rule__Metrics__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:688:1: ( rule__Metrics__Group_3__1__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:689:2: rule__Metrics__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Metrics__Group_3__1__Impl_in_rule__Metrics__Group_3__11377);
            rule__Metrics__Group_3__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_3__1"


    // $ANTLR start "rule__Metrics__Group_3__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:695:1: rule__Metrics__Group_3__1__Impl : ( ( rule__Metrics__DescriptionAssignment_3_1 ) ) ;
    public final void rule__Metrics__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:699:1: ( ( ( rule__Metrics__DescriptionAssignment_3_1 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:700:1: ( ( rule__Metrics__DescriptionAssignment_3_1 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:700:1: ( ( rule__Metrics__DescriptionAssignment_3_1 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:701:1: ( rule__Metrics__DescriptionAssignment_3_1 )
            {
             before(grammarAccess.getMetricsAccess().getDescriptionAssignment_3_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:702:1: ( rule__Metrics__DescriptionAssignment_3_1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:702:2: rule__Metrics__DescriptionAssignment_3_1
            {
            pushFollow(FOLLOW_rule__Metrics__DescriptionAssignment_3_1_in_rule__Metrics__Group_3__1__Impl1404);
            rule__Metrics__DescriptionAssignment_3_1();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getDescriptionAssignment_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_3__1__Impl"


    // $ANTLR start "rule__Metrics__Group_4__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:716:1: rule__Metrics__Group_4__0 : rule__Metrics__Group_4__0__Impl rule__Metrics__Group_4__1 ;
    public final void rule__Metrics__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:720:1: ( rule__Metrics__Group_4__0__Impl rule__Metrics__Group_4__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:721:2: rule__Metrics__Group_4__0__Impl rule__Metrics__Group_4__1
            {
            pushFollow(FOLLOW_rule__Metrics__Group_4__0__Impl_in_rule__Metrics__Group_4__01438);
            rule__Metrics__Group_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group_4__1_in_rule__Metrics__Group_4__01441);
            rule__Metrics__Group_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_4__0"


    // $ANTLR start "rule__Metrics__Group_4__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:728:1: rule__Metrics__Group_4__0__Impl : ( 'type' ) ;
    public final void rule__Metrics__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:732:1: ( ( 'type' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:733:1: ( 'type' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:733:1: ( 'type' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:734:1: 'type'
            {
             before(grammarAccess.getMetricsAccess().getTypeKeyword_4_0()); 
            match(input,21,FOLLOW_21_in_rule__Metrics__Group_4__0__Impl1469); 
             after(grammarAccess.getMetricsAccess().getTypeKeyword_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_4__0__Impl"


    // $ANTLR start "rule__Metrics__Group_4__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:747:1: rule__Metrics__Group_4__1 : rule__Metrics__Group_4__1__Impl ;
    public final void rule__Metrics__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:751:1: ( rule__Metrics__Group_4__1__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:752:2: rule__Metrics__Group_4__1__Impl
            {
            pushFollow(FOLLOW_rule__Metrics__Group_4__1__Impl_in_rule__Metrics__Group_4__11500);
            rule__Metrics__Group_4__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_4__1"


    // $ANTLR start "rule__Metrics__Group_4__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:758:1: rule__Metrics__Group_4__1__Impl : ( ( rule__Metrics__TypeAssignment_4_1 ) ) ;
    public final void rule__Metrics__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:762:1: ( ( ( rule__Metrics__TypeAssignment_4_1 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:763:1: ( ( rule__Metrics__TypeAssignment_4_1 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:763:1: ( ( rule__Metrics__TypeAssignment_4_1 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:764:1: ( rule__Metrics__TypeAssignment_4_1 )
            {
             before(grammarAccess.getMetricsAccess().getTypeAssignment_4_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:765:1: ( rule__Metrics__TypeAssignment_4_1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:765:2: rule__Metrics__TypeAssignment_4_1
            {
            pushFollow(FOLLOW_rule__Metrics__TypeAssignment_4_1_in_rule__Metrics__Group_4__1__Impl1527);
            rule__Metrics__TypeAssignment_4_1();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getTypeAssignment_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_4__1__Impl"


    // $ANTLR start "rule__Metrics__Group_5__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:779:1: rule__Metrics__Group_5__0 : rule__Metrics__Group_5__0__Impl rule__Metrics__Group_5__1 ;
    public final void rule__Metrics__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:783:1: ( rule__Metrics__Group_5__0__Impl rule__Metrics__Group_5__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:784:2: rule__Metrics__Group_5__0__Impl rule__Metrics__Group_5__1
            {
            pushFollow(FOLLOW_rule__Metrics__Group_5__0__Impl_in_rule__Metrics__Group_5__01561);
            rule__Metrics__Group_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group_5__1_in_rule__Metrics__Group_5__01564);
            rule__Metrics__Group_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_5__0"


    // $ANTLR start "rule__Metrics__Group_5__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:791:1: rule__Metrics__Group_5__0__Impl : ( 'form' ) ;
    public final void rule__Metrics__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:795:1: ( ( 'form' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:796:1: ( 'form' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:796:1: ( 'form' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:797:1: 'form'
            {
             before(grammarAccess.getMetricsAccess().getFormKeyword_5_0()); 
            match(input,22,FOLLOW_22_in_rule__Metrics__Group_5__0__Impl1592); 
             after(grammarAccess.getMetricsAccess().getFormKeyword_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_5__0__Impl"


    // $ANTLR start "rule__Metrics__Group_5__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:810:1: rule__Metrics__Group_5__1 : rule__Metrics__Group_5__1__Impl ;
    public final void rule__Metrics__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:814:1: ( rule__Metrics__Group_5__1__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:815:2: rule__Metrics__Group_5__1__Impl
            {
            pushFollow(FOLLOW_rule__Metrics__Group_5__1__Impl_in_rule__Metrics__Group_5__11623);
            rule__Metrics__Group_5__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_5__1"


    // $ANTLR start "rule__Metrics__Group_5__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:821:1: rule__Metrics__Group_5__1__Impl : ( ( rule__Metrics__FormAssignment_5_1 ) ) ;
    public final void rule__Metrics__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:825:1: ( ( ( rule__Metrics__FormAssignment_5_1 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:826:1: ( ( rule__Metrics__FormAssignment_5_1 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:826:1: ( ( rule__Metrics__FormAssignment_5_1 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:827:1: ( rule__Metrics__FormAssignment_5_1 )
            {
             before(grammarAccess.getMetricsAccess().getFormAssignment_5_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:828:1: ( rule__Metrics__FormAssignment_5_1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:828:2: rule__Metrics__FormAssignment_5_1
            {
            pushFollow(FOLLOW_rule__Metrics__FormAssignment_5_1_in_rule__Metrics__Group_5__1__Impl1650);
            rule__Metrics__FormAssignment_5_1();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getFormAssignment_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_5__1__Impl"


    // $ANTLR start "rule__Metrics__Group_6__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:842:1: rule__Metrics__Group_6__0 : rule__Metrics__Group_6__0__Impl rule__Metrics__Group_6__1 ;
    public final void rule__Metrics__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:846:1: ( rule__Metrics__Group_6__0__Impl rule__Metrics__Group_6__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:847:2: rule__Metrics__Group_6__0__Impl rule__Metrics__Group_6__1
            {
            pushFollow(FOLLOW_rule__Metrics__Group_6__0__Impl_in_rule__Metrics__Group_6__01684);
            rule__Metrics__Group_6__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group_6__1_in_rule__Metrics__Group_6__01687);
            rule__Metrics__Group_6__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_6__0"


    // $ANTLR start "rule__Metrics__Group_6__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:854:1: rule__Metrics__Group_6__0__Impl : ( 'id' ) ;
    public final void rule__Metrics__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:858:1: ( ( 'id' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:859:1: ( 'id' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:859:1: ( 'id' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:860:1: 'id'
            {
             before(grammarAccess.getMetricsAccess().getIdKeyword_6_0()); 
            match(input,23,FOLLOW_23_in_rule__Metrics__Group_6__0__Impl1715); 
             after(grammarAccess.getMetricsAccess().getIdKeyword_6_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_6__0__Impl"


    // $ANTLR start "rule__Metrics__Group_6__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:873:1: rule__Metrics__Group_6__1 : rule__Metrics__Group_6__1__Impl ;
    public final void rule__Metrics__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:877:1: ( rule__Metrics__Group_6__1__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:878:2: rule__Metrics__Group_6__1__Impl
            {
            pushFollow(FOLLOW_rule__Metrics__Group_6__1__Impl_in_rule__Metrics__Group_6__11746);
            rule__Metrics__Group_6__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_6__1"


    // $ANTLR start "rule__Metrics__Group_6__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:884:1: rule__Metrics__Group_6__1__Impl : ( ( rule__Metrics__IdAssignment_6_1 ) ) ;
    public final void rule__Metrics__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:888:1: ( ( ( rule__Metrics__IdAssignment_6_1 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:889:1: ( ( rule__Metrics__IdAssignment_6_1 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:889:1: ( ( rule__Metrics__IdAssignment_6_1 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:890:1: ( rule__Metrics__IdAssignment_6_1 )
            {
             before(grammarAccess.getMetricsAccess().getIdAssignment_6_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:891:1: ( rule__Metrics__IdAssignment_6_1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:891:2: rule__Metrics__IdAssignment_6_1
            {
            pushFollow(FOLLOW_rule__Metrics__IdAssignment_6_1_in_rule__Metrics__Group_6__1__Impl1773);
            rule__Metrics__IdAssignment_6_1();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getIdAssignment_6_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_6__1__Impl"


    // $ANTLR start "rule__Metrics__Group_7__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:905:1: rule__Metrics__Group_7__0 : rule__Metrics__Group_7__0__Impl rule__Metrics__Group_7__1 ;
    public final void rule__Metrics__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:909:1: ( rule__Metrics__Group_7__0__Impl rule__Metrics__Group_7__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:910:2: rule__Metrics__Group_7__0__Impl rule__Metrics__Group_7__1
            {
            pushFollow(FOLLOW_rule__Metrics__Group_7__0__Impl_in_rule__Metrics__Group_7__01807);
            rule__Metrics__Group_7__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Metrics__Group_7__1_in_rule__Metrics__Group_7__01810);
            rule__Metrics__Group_7__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_7__0"


    // $ANTLR start "rule__Metrics__Group_7__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:917:1: rule__Metrics__Group_7__0__Impl : ( 'unit' ) ;
    public final void rule__Metrics__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:921:1: ( ( 'unit' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:922:1: ( 'unit' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:922:1: ( 'unit' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:923:1: 'unit'
            {
             before(grammarAccess.getMetricsAccess().getUnitKeyword_7_0()); 
            match(input,24,FOLLOW_24_in_rule__Metrics__Group_7__0__Impl1838); 
             after(grammarAccess.getMetricsAccess().getUnitKeyword_7_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_7__0__Impl"


    // $ANTLR start "rule__Metrics__Group_7__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:936:1: rule__Metrics__Group_7__1 : rule__Metrics__Group_7__1__Impl ;
    public final void rule__Metrics__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:940:1: ( rule__Metrics__Group_7__1__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:941:2: rule__Metrics__Group_7__1__Impl
            {
            pushFollow(FOLLOW_rule__Metrics__Group_7__1__Impl_in_rule__Metrics__Group_7__11869);
            rule__Metrics__Group_7__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_7__1"


    // $ANTLR start "rule__Metrics__Group_7__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:947:1: rule__Metrics__Group_7__1__Impl : ( ( rule__Metrics__UnitAssignment_7_1 ) ) ;
    public final void rule__Metrics__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:951:1: ( ( ( rule__Metrics__UnitAssignment_7_1 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:952:1: ( ( rule__Metrics__UnitAssignment_7_1 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:952:1: ( ( rule__Metrics__UnitAssignment_7_1 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:953:1: ( rule__Metrics__UnitAssignment_7_1 )
            {
             before(grammarAccess.getMetricsAccess().getUnitAssignment_7_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:954:1: ( rule__Metrics__UnitAssignment_7_1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:954:2: rule__Metrics__UnitAssignment_7_1
            {
            pushFollow(FOLLOW_rule__Metrics__UnitAssignment_7_1_in_rule__Metrics__Group_7__1__Impl1896);
            rule__Metrics__UnitAssignment_7_1();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getUnitAssignment_7_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__Group_7__1__Impl"


    // $ANTLR start "rule__ActivityMetric__Group__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:968:1: rule__ActivityMetric__Group__0 : rule__ActivityMetric__Group__0__Impl rule__ActivityMetric__Group__1 ;
    public final void rule__ActivityMetric__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:972:1: ( rule__ActivityMetric__Group__0__Impl rule__ActivityMetric__Group__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:973:2: rule__ActivityMetric__Group__0__Impl rule__ActivityMetric__Group__1
            {
            pushFollow(FOLLOW_rule__ActivityMetric__Group__0__Impl_in_rule__ActivityMetric__Group__01930);
            rule__ActivityMetric__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ActivityMetric__Group__1_in_rule__ActivityMetric__Group__01933);
            rule__ActivityMetric__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group__0"


    // $ANTLR start "rule__ActivityMetric__Group__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:980:1: rule__ActivityMetric__Group__0__Impl : ( ( rule__ActivityMetric__Group_0__0 ) ) ;
    public final void rule__ActivityMetric__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:984:1: ( ( ( rule__ActivityMetric__Group_0__0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:985:1: ( ( rule__ActivityMetric__Group_0__0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:985:1: ( ( rule__ActivityMetric__Group_0__0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:986:1: ( rule__ActivityMetric__Group_0__0 )
            {
             before(grammarAccess.getActivityMetricAccess().getGroup_0()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:987:1: ( rule__ActivityMetric__Group_0__0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:987:2: rule__ActivityMetric__Group_0__0
            {
            pushFollow(FOLLOW_rule__ActivityMetric__Group_0__0_in_rule__ActivityMetric__Group__0__Impl1960);
            rule__ActivityMetric__Group_0__0();

            state._fsp--;


            }

             after(grammarAccess.getActivityMetricAccess().getGroup_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group__0__Impl"


    // $ANTLR start "rule__ActivityMetric__Group__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:997:1: rule__ActivityMetric__Group__1 : rule__ActivityMetric__Group__1__Impl ;
    public final void rule__ActivityMetric__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1001:1: ( rule__ActivityMetric__Group__1__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1002:2: rule__ActivityMetric__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__ActivityMetric__Group__1__Impl_in_rule__ActivityMetric__Group__11990);
            rule__ActivityMetric__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group__1"


    // $ANTLR start "rule__ActivityMetric__Group__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1008:1: rule__ActivityMetric__Group__1__Impl : ( ( rule__ActivityMetric__Group_1__0 )? ) ;
    public final void rule__ActivityMetric__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1012:1: ( ( ( rule__ActivityMetric__Group_1__0 )? ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1013:1: ( ( rule__ActivityMetric__Group_1__0 )? )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1013:1: ( ( rule__ActivityMetric__Group_1__0 )? )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1014:1: ( rule__ActivityMetric__Group_1__0 )?
            {
             before(grammarAccess.getActivityMetricAccess().getGroup_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1015:1: ( rule__ActivityMetric__Group_1__0 )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==26) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1015:2: rule__ActivityMetric__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__ActivityMetric__Group_1__0_in_rule__ActivityMetric__Group__1__Impl2017);
                    rule__ActivityMetric__Group_1__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getActivityMetricAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group__1__Impl"


    // $ANTLR start "rule__ActivityMetric__Group_0__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1029:1: rule__ActivityMetric__Group_0__0 : rule__ActivityMetric__Group_0__0__Impl rule__ActivityMetric__Group_0__1 ;
    public final void rule__ActivityMetric__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1033:1: ( rule__ActivityMetric__Group_0__0__Impl rule__ActivityMetric__Group_0__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1034:2: rule__ActivityMetric__Group_0__0__Impl rule__ActivityMetric__Group_0__1
            {
            pushFollow(FOLLOW_rule__ActivityMetric__Group_0__0__Impl_in_rule__ActivityMetric__Group_0__02052);
            rule__ActivityMetric__Group_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ActivityMetric__Group_0__1_in_rule__ActivityMetric__Group_0__02055);
            rule__ActivityMetric__Group_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group_0__0"


    // $ANTLR start "rule__ActivityMetric__Group_0__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1041:1: rule__ActivityMetric__Group_0__0__Impl : ( 'activityBegin' ) ;
    public final void rule__ActivityMetric__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1045:1: ( ( 'activityBegin' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1046:1: ( 'activityBegin' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1046:1: ( 'activityBegin' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1047:1: 'activityBegin'
            {
             before(grammarAccess.getActivityMetricAccess().getActivityBeginKeyword_0_0()); 
            match(input,25,FOLLOW_25_in_rule__ActivityMetric__Group_0__0__Impl2083); 
             after(grammarAccess.getActivityMetricAccess().getActivityBeginKeyword_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group_0__0__Impl"


    // $ANTLR start "rule__ActivityMetric__Group_0__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1060:1: rule__ActivityMetric__Group_0__1 : rule__ActivityMetric__Group_0__1__Impl ;
    public final void rule__ActivityMetric__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1064:1: ( rule__ActivityMetric__Group_0__1__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1065:2: rule__ActivityMetric__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__ActivityMetric__Group_0__1__Impl_in_rule__ActivityMetric__Group_0__12114);
            rule__ActivityMetric__Group_0__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group_0__1"


    // $ANTLR start "rule__ActivityMetric__Group_0__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1071:1: rule__ActivityMetric__Group_0__1__Impl : ( ( rule__ActivityMetric__ActivityBeginAssignment_0_1 ) ) ;
    public final void rule__ActivityMetric__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1075:1: ( ( ( rule__ActivityMetric__ActivityBeginAssignment_0_1 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1076:1: ( ( rule__ActivityMetric__ActivityBeginAssignment_0_1 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1076:1: ( ( rule__ActivityMetric__ActivityBeginAssignment_0_1 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1077:1: ( rule__ActivityMetric__ActivityBeginAssignment_0_1 )
            {
             before(grammarAccess.getActivityMetricAccess().getActivityBeginAssignment_0_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1078:1: ( rule__ActivityMetric__ActivityBeginAssignment_0_1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1078:2: rule__ActivityMetric__ActivityBeginAssignment_0_1
            {
            pushFollow(FOLLOW_rule__ActivityMetric__ActivityBeginAssignment_0_1_in_rule__ActivityMetric__Group_0__1__Impl2141);
            rule__ActivityMetric__ActivityBeginAssignment_0_1();

            state._fsp--;


            }

             after(grammarAccess.getActivityMetricAccess().getActivityBeginAssignment_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group_0__1__Impl"


    // $ANTLR start "rule__ActivityMetric__Group_1__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1092:1: rule__ActivityMetric__Group_1__0 : rule__ActivityMetric__Group_1__0__Impl rule__ActivityMetric__Group_1__1 ;
    public final void rule__ActivityMetric__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1096:1: ( rule__ActivityMetric__Group_1__0__Impl rule__ActivityMetric__Group_1__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1097:2: rule__ActivityMetric__Group_1__0__Impl rule__ActivityMetric__Group_1__1
            {
            pushFollow(FOLLOW_rule__ActivityMetric__Group_1__0__Impl_in_rule__ActivityMetric__Group_1__02175);
            rule__ActivityMetric__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ActivityMetric__Group_1__1_in_rule__ActivityMetric__Group_1__02178);
            rule__ActivityMetric__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group_1__0"


    // $ANTLR start "rule__ActivityMetric__Group_1__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1104:1: rule__ActivityMetric__Group_1__0__Impl : ( 'activityEnd' ) ;
    public final void rule__ActivityMetric__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1108:1: ( ( 'activityEnd' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1109:1: ( 'activityEnd' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1109:1: ( 'activityEnd' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1110:1: 'activityEnd'
            {
             before(grammarAccess.getActivityMetricAccess().getActivityEndKeyword_1_0()); 
            match(input,26,FOLLOW_26_in_rule__ActivityMetric__Group_1__0__Impl2206); 
             after(grammarAccess.getActivityMetricAccess().getActivityEndKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group_1__0__Impl"


    // $ANTLR start "rule__ActivityMetric__Group_1__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1123:1: rule__ActivityMetric__Group_1__1 : rule__ActivityMetric__Group_1__1__Impl ;
    public final void rule__ActivityMetric__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1127:1: ( rule__ActivityMetric__Group_1__1__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1128:2: rule__ActivityMetric__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__ActivityMetric__Group_1__1__Impl_in_rule__ActivityMetric__Group_1__12237);
            rule__ActivityMetric__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group_1__1"


    // $ANTLR start "rule__ActivityMetric__Group_1__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1134:1: rule__ActivityMetric__Group_1__1__Impl : ( ( rule__ActivityMetric__ActivityEndAssignment_1_1 ) ) ;
    public final void rule__ActivityMetric__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1138:1: ( ( ( rule__ActivityMetric__ActivityEndAssignment_1_1 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1139:1: ( ( rule__ActivityMetric__ActivityEndAssignment_1_1 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1139:1: ( ( rule__ActivityMetric__ActivityEndAssignment_1_1 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1140:1: ( rule__ActivityMetric__ActivityEndAssignment_1_1 )
            {
             before(grammarAccess.getActivityMetricAccess().getActivityEndAssignment_1_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1141:1: ( rule__ActivityMetric__ActivityEndAssignment_1_1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1141:2: rule__ActivityMetric__ActivityEndAssignment_1_1
            {
            pushFollow(FOLLOW_rule__ActivityMetric__ActivityEndAssignment_1_1_in_rule__ActivityMetric__Group_1__1__Impl2264);
            rule__ActivityMetric__ActivityEndAssignment_1_1();

            state._fsp--;


            }

             after(grammarAccess.getActivityMetricAccess().getActivityEndAssignment_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__Group_1__1__Impl"


    // $ANTLR start "rule__TaskMetric__Group__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1155:1: rule__TaskMetric__Group__0 : rule__TaskMetric__Group__0__Impl rule__TaskMetric__Group__1 ;
    public final void rule__TaskMetric__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1159:1: ( rule__TaskMetric__Group__0__Impl rule__TaskMetric__Group__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1160:2: rule__TaskMetric__Group__0__Impl rule__TaskMetric__Group__1
            {
            pushFollow(FOLLOW_rule__TaskMetric__Group__0__Impl_in_rule__TaskMetric__Group__02298);
            rule__TaskMetric__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__TaskMetric__Group__1_in_rule__TaskMetric__Group__02301);
            rule__TaskMetric__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TaskMetric__Group__0"


    // $ANTLR start "rule__TaskMetric__Group__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1167:1: rule__TaskMetric__Group__0__Impl : ( 'tasks' ) ;
    public final void rule__TaskMetric__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1171:1: ( ( 'tasks' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1172:1: ( 'tasks' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1172:1: ( 'tasks' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1173:1: 'tasks'
            {
             before(grammarAccess.getTaskMetricAccess().getTasksKeyword_0()); 
            match(input,27,FOLLOW_27_in_rule__TaskMetric__Group__0__Impl2329); 
             after(grammarAccess.getTaskMetricAccess().getTasksKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TaskMetric__Group__0__Impl"


    // $ANTLR start "rule__TaskMetric__Group__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1186:1: rule__TaskMetric__Group__1 : rule__TaskMetric__Group__1__Impl ;
    public final void rule__TaskMetric__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1190:1: ( rule__TaskMetric__Group__1__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1191:2: rule__TaskMetric__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__TaskMetric__Group__1__Impl_in_rule__TaskMetric__Group__12360);
            rule__TaskMetric__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TaskMetric__Group__1"


    // $ANTLR start "rule__TaskMetric__Group__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1197:1: rule__TaskMetric__Group__1__Impl : ( ( rule__TaskMetric__TasksAssignment_1 )* ) ;
    public final void rule__TaskMetric__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1201:1: ( ( ( rule__TaskMetric__TasksAssignment_1 )* ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1202:1: ( ( rule__TaskMetric__TasksAssignment_1 )* )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1202:1: ( ( rule__TaskMetric__TasksAssignment_1 )* )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1203:1: ( rule__TaskMetric__TasksAssignment_1 )*
            {
             before(grammarAccess.getTaskMetricAccess().getTasksAssignment_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1204:1: ( rule__TaskMetric__TasksAssignment_1 )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0==RULE_STRING) ) {
                    int LA9_2 = input.LA(2);

                    if ( (LA9_2==EOF||LA9_2==RULE_STRING) ) {
                        alt9=1;
                    }


                }


                switch (alt9) {
            	case 1 :
            	    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1204:2: rule__TaskMetric__TasksAssignment_1
            	    {
            	    pushFollow(FOLLOW_rule__TaskMetric__TasksAssignment_1_in_rule__TaskMetric__Group__1__Impl2387);
            	    rule__TaskMetric__TasksAssignment_1();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);

             after(grammarAccess.getTaskMetricAccess().getTasksAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TaskMetric__Group__1__Impl"


    // $ANTLR start "rule__ArtefactMetric__Group__0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1218:1: rule__ArtefactMetric__Group__0 : rule__ArtefactMetric__Group__0__Impl rule__ArtefactMetric__Group__1 ;
    public final void rule__ArtefactMetric__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1222:1: ( rule__ArtefactMetric__Group__0__Impl rule__ArtefactMetric__Group__1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1223:2: rule__ArtefactMetric__Group__0__Impl rule__ArtefactMetric__Group__1
            {
            pushFollow(FOLLOW_rule__ArtefactMetric__Group__0__Impl_in_rule__ArtefactMetric__Group__02422);
            rule__ArtefactMetric__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ArtefactMetric__Group__1_in_rule__ArtefactMetric__Group__02425);
            rule__ArtefactMetric__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArtefactMetric__Group__0"


    // $ANTLR start "rule__ArtefactMetric__Group__0__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1230:1: rule__ArtefactMetric__Group__0__Impl : ( 'artefacts' ) ;
    public final void rule__ArtefactMetric__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1234:1: ( ( 'artefacts' ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1235:1: ( 'artefacts' )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1235:1: ( 'artefacts' )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1236:1: 'artefacts'
            {
             before(grammarAccess.getArtefactMetricAccess().getArtefactsKeyword_0()); 
            match(input,28,FOLLOW_28_in_rule__ArtefactMetric__Group__0__Impl2453); 
             after(grammarAccess.getArtefactMetricAccess().getArtefactsKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArtefactMetric__Group__0__Impl"


    // $ANTLR start "rule__ArtefactMetric__Group__1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1249:1: rule__ArtefactMetric__Group__1 : rule__ArtefactMetric__Group__1__Impl rule__ArtefactMetric__Group__2 ;
    public final void rule__ArtefactMetric__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1253:1: ( rule__ArtefactMetric__Group__1__Impl rule__ArtefactMetric__Group__2 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1254:2: rule__ArtefactMetric__Group__1__Impl rule__ArtefactMetric__Group__2
            {
            pushFollow(FOLLOW_rule__ArtefactMetric__Group__1__Impl_in_rule__ArtefactMetric__Group__12484);
            rule__ArtefactMetric__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ArtefactMetric__Group__2_in_rule__ArtefactMetric__Group__12487);
            rule__ArtefactMetric__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArtefactMetric__Group__1"


    // $ANTLR start "rule__ArtefactMetric__Group__1__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1261:1: rule__ArtefactMetric__Group__1__Impl : ( ( rule__ArtefactMetric__NameAssignment_1 ) ) ;
    public final void rule__ArtefactMetric__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1265:1: ( ( ( rule__ArtefactMetric__NameAssignment_1 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1266:1: ( ( rule__ArtefactMetric__NameAssignment_1 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1266:1: ( ( rule__ArtefactMetric__NameAssignment_1 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1267:1: ( rule__ArtefactMetric__NameAssignment_1 )
            {
             before(grammarAccess.getArtefactMetricAccess().getNameAssignment_1()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1268:1: ( rule__ArtefactMetric__NameAssignment_1 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1268:2: rule__ArtefactMetric__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__ArtefactMetric__NameAssignment_1_in_rule__ArtefactMetric__Group__1__Impl2514);
            rule__ArtefactMetric__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getArtefactMetricAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArtefactMetric__Group__1__Impl"


    // $ANTLR start "rule__ArtefactMetric__Group__2"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1278:1: rule__ArtefactMetric__Group__2 : rule__ArtefactMetric__Group__2__Impl ;
    public final void rule__ArtefactMetric__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1282:1: ( rule__ArtefactMetric__Group__2__Impl )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1283:2: rule__ArtefactMetric__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__ArtefactMetric__Group__2__Impl_in_rule__ArtefactMetric__Group__22544);
            rule__ArtefactMetric__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArtefactMetric__Group__2"


    // $ANTLR start "rule__ArtefactMetric__Group__2__Impl"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1289:1: rule__ArtefactMetric__Group__2__Impl : ( ( rule__ArtefactMetric__ArtefactsAssignment_2 )* ) ;
    public final void rule__ArtefactMetric__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1293:1: ( ( ( rule__ArtefactMetric__ArtefactsAssignment_2 )* ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1294:1: ( ( rule__ArtefactMetric__ArtefactsAssignment_2 )* )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1294:1: ( ( rule__ArtefactMetric__ArtefactsAssignment_2 )* )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1295:1: ( rule__ArtefactMetric__ArtefactsAssignment_2 )*
            {
             before(grammarAccess.getArtefactMetricAccess().getArtefactsAssignment_2()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1296:1: ( rule__ArtefactMetric__ArtefactsAssignment_2 )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0==RULE_STRING) ) {
                    int LA10_2 = input.LA(2);

                    if ( (LA10_2==EOF||LA10_2==RULE_STRING) ) {
                        alt10=1;
                    }


                }


                switch (alt10) {
            	case 1 :
            	    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1296:2: rule__ArtefactMetric__ArtefactsAssignment_2
            	    {
            	    pushFollow(FOLLOW_rule__ArtefactMetric__ArtefactsAssignment_2_in_rule__ArtefactMetric__Group__2__Impl2571);
            	    rule__ArtefactMetric__ArtefactsAssignment_2();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

             after(grammarAccess.getArtefactMetricAccess().getArtefactsAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArtefactMetric__Group__2__Impl"


    // $ANTLR start "rule__Model__MetricsAssignment"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1313:1: rule__Model__MetricsAssignment : ( ruleMetrics ) ;
    public final void rule__Model__MetricsAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1317:1: ( ( ruleMetrics ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1318:1: ( ruleMetrics )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1318:1: ( ruleMetrics )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1319:1: ruleMetrics
            {
             before(grammarAccess.getModelAccess().getMetricsMetricsParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleMetrics_in_rule__Model__MetricsAssignment2613);
            ruleMetrics();

            state._fsp--;

             after(grammarAccess.getModelAccess().getMetricsMetricsParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__MetricsAssignment"


    // $ANTLR start "rule__Metrics__NameAssignment_0"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1328:1: rule__Metrics__NameAssignment_0 : ( RULE_STRING ) ;
    public final void rule__Metrics__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1332:1: ( ( RULE_STRING ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1333:1: ( RULE_STRING )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1333:1: ( RULE_STRING )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1334:1: RULE_STRING
            {
             before(grammarAccess.getMetricsAccess().getNameSTRINGTerminalRuleCall_0_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Metrics__NameAssignment_02644); 
             after(grammarAccess.getMetricsAccess().getNameSTRINGTerminalRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__NameAssignment_0"


    // $ANTLR start "rule__Metrics__RelatesToAssignment_2"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1343:1: rule__Metrics__RelatesToAssignment_2 : ( ( RULE_ID ) ) ;
    public final void rule__Metrics__RelatesToAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1347:1: ( ( ( RULE_ID ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1348:1: ( ( RULE_ID ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1348:1: ( ( RULE_ID ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1349:1: ( RULE_ID )
            {
             before(grammarAccess.getMetricsAccess().getRelatesToProcessCrossReference_2_0()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1350:1: ( RULE_ID )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1351:1: RULE_ID
            {
             before(grammarAccess.getMetricsAccess().getRelatesToProcessIDTerminalRuleCall_2_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Metrics__RelatesToAssignment_22679); 
             after(grammarAccess.getMetricsAccess().getRelatesToProcessIDTerminalRuleCall_2_0_1()); 

            }

             after(grammarAccess.getMetricsAccess().getRelatesToProcessCrossReference_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__RelatesToAssignment_2"


    // $ANTLR start "rule__Metrics__DescriptionAssignment_3_1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1362:1: rule__Metrics__DescriptionAssignment_3_1 : ( RULE_STRING ) ;
    public final void rule__Metrics__DescriptionAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1366:1: ( ( RULE_STRING ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1367:1: ( RULE_STRING )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1367:1: ( RULE_STRING )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1368:1: RULE_STRING
            {
             before(grammarAccess.getMetricsAccess().getDescriptionSTRINGTerminalRuleCall_3_1_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Metrics__DescriptionAssignment_3_12714); 
             after(grammarAccess.getMetricsAccess().getDescriptionSTRINGTerminalRuleCall_3_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__DescriptionAssignment_3_1"


    // $ANTLR start "rule__Metrics__TypeAssignment_4_1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1377:1: rule__Metrics__TypeAssignment_4_1 : ( ruleMetricType ) ;
    public final void rule__Metrics__TypeAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1381:1: ( ( ruleMetricType ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1382:1: ( ruleMetricType )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1382:1: ( ruleMetricType )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1383:1: ruleMetricType
            {
             before(grammarAccess.getMetricsAccess().getTypeMetricTypeEnumRuleCall_4_1_0()); 
            pushFollow(FOLLOW_ruleMetricType_in_rule__Metrics__TypeAssignment_4_12745);
            ruleMetricType();

            state._fsp--;

             after(grammarAccess.getMetricsAccess().getTypeMetricTypeEnumRuleCall_4_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__TypeAssignment_4_1"


    // $ANTLR start "rule__Metrics__FormAssignment_5_1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1392:1: rule__Metrics__FormAssignment_5_1 : ( ruleColectType ) ;
    public final void rule__Metrics__FormAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1396:1: ( ( ruleColectType ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1397:1: ( ruleColectType )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1397:1: ( ruleColectType )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1398:1: ruleColectType
            {
             before(grammarAccess.getMetricsAccess().getFormColectTypeEnumRuleCall_5_1_0()); 
            pushFollow(FOLLOW_ruleColectType_in_rule__Metrics__FormAssignment_5_12776);
            ruleColectType();

            state._fsp--;

             after(grammarAccess.getMetricsAccess().getFormColectTypeEnumRuleCall_5_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__FormAssignment_5_1"


    // $ANTLR start "rule__Metrics__IdAssignment_6_1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1407:1: rule__Metrics__IdAssignment_6_1 : ( RULE_STRING ) ;
    public final void rule__Metrics__IdAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1411:1: ( ( RULE_STRING ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1412:1: ( RULE_STRING )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1412:1: ( RULE_STRING )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1413:1: RULE_STRING
            {
             before(grammarAccess.getMetricsAccess().getIdSTRINGTerminalRuleCall_6_1_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Metrics__IdAssignment_6_12807); 
             after(grammarAccess.getMetricsAccess().getIdSTRINGTerminalRuleCall_6_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__IdAssignment_6_1"


    // $ANTLR start "rule__Metrics__UnitAssignment_7_1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1422:1: rule__Metrics__UnitAssignment_7_1 : ( ruleMetricUnit ) ;
    public final void rule__Metrics__UnitAssignment_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1426:1: ( ( ruleMetricUnit ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1427:1: ( ruleMetricUnit )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1427:1: ( ruleMetricUnit )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1428:1: ruleMetricUnit
            {
             before(grammarAccess.getMetricsAccess().getUnitMetricUnitEnumRuleCall_7_1_0()); 
            pushFollow(FOLLOW_ruleMetricUnit_in_rule__Metrics__UnitAssignment_7_12838);
            ruleMetricUnit();

            state._fsp--;

             after(grammarAccess.getMetricsAccess().getUnitMetricUnitEnumRuleCall_7_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__UnitAssignment_7_1"


    // $ANTLR start "rule__Metrics__DetailsAssignment_8"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1437:1: rule__Metrics__DetailsAssignment_8 : ( ( rule__Metrics__DetailsAlternatives_8_0 ) ) ;
    public final void rule__Metrics__DetailsAssignment_8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1441:1: ( ( ( rule__Metrics__DetailsAlternatives_8_0 ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1442:1: ( ( rule__Metrics__DetailsAlternatives_8_0 ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1442:1: ( ( rule__Metrics__DetailsAlternatives_8_0 ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1443:1: ( rule__Metrics__DetailsAlternatives_8_0 )
            {
             before(grammarAccess.getMetricsAccess().getDetailsAlternatives_8_0()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1444:1: ( rule__Metrics__DetailsAlternatives_8_0 )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1444:2: rule__Metrics__DetailsAlternatives_8_0
            {
            pushFollow(FOLLOW_rule__Metrics__DetailsAlternatives_8_0_in_rule__Metrics__DetailsAssignment_82869);
            rule__Metrics__DetailsAlternatives_8_0();

            state._fsp--;


            }

             after(grammarAccess.getMetricsAccess().getDetailsAlternatives_8_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Metrics__DetailsAssignment_8"


    // $ANTLR start "rule__ActivityMetric__ActivityBeginAssignment_0_1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1453:1: rule__ActivityMetric__ActivityBeginAssignment_0_1 : ( ( RULE_STRING ) ) ;
    public final void rule__ActivityMetric__ActivityBeginAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1457:1: ( ( ( RULE_STRING ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1458:1: ( ( RULE_STRING ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1458:1: ( ( RULE_STRING ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1459:1: ( RULE_STRING )
            {
             before(grammarAccess.getActivityMetricAccess().getActivityBeginActivityCrossReference_0_1_0()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1460:1: ( RULE_STRING )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1461:1: RULE_STRING
            {
             before(grammarAccess.getActivityMetricAccess().getActivityBeginActivitySTRINGTerminalRuleCall_0_1_0_1()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ActivityMetric__ActivityBeginAssignment_0_12906); 
             after(grammarAccess.getActivityMetricAccess().getActivityBeginActivitySTRINGTerminalRuleCall_0_1_0_1()); 

            }

             after(grammarAccess.getActivityMetricAccess().getActivityBeginActivityCrossReference_0_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__ActivityBeginAssignment_0_1"


    // $ANTLR start "rule__ActivityMetric__ActivityEndAssignment_1_1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1472:1: rule__ActivityMetric__ActivityEndAssignment_1_1 : ( ( RULE_STRING ) ) ;
    public final void rule__ActivityMetric__ActivityEndAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1476:1: ( ( ( RULE_STRING ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1477:1: ( ( RULE_STRING ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1477:1: ( ( RULE_STRING ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1478:1: ( RULE_STRING )
            {
             before(grammarAccess.getActivityMetricAccess().getActivityEndActivityCrossReference_1_1_0()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1479:1: ( RULE_STRING )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1480:1: RULE_STRING
            {
             before(grammarAccess.getActivityMetricAccess().getActivityEndActivitySTRINGTerminalRuleCall_1_1_0_1()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ActivityMetric__ActivityEndAssignment_1_12945); 
             after(grammarAccess.getActivityMetricAccess().getActivityEndActivitySTRINGTerminalRuleCall_1_1_0_1()); 

            }

             after(grammarAccess.getActivityMetricAccess().getActivityEndActivityCrossReference_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ActivityMetric__ActivityEndAssignment_1_1"


    // $ANTLR start "rule__TaskMetric__TasksAssignment_1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1491:1: rule__TaskMetric__TasksAssignment_1 : ( ( RULE_STRING ) ) ;
    public final void rule__TaskMetric__TasksAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1495:1: ( ( ( RULE_STRING ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1496:1: ( ( RULE_STRING ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1496:1: ( ( RULE_STRING ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1497:1: ( RULE_STRING )
            {
             before(grammarAccess.getTaskMetricAccess().getTasksTaskCrossReference_1_0()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1498:1: ( RULE_STRING )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1499:1: RULE_STRING
            {
             before(grammarAccess.getTaskMetricAccess().getTasksTaskSTRINGTerminalRuleCall_1_0_1()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__TaskMetric__TasksAssignment_12984); 
             after(grammarAccess.getTaskMetricAccess().getTasksTaskSTRINGTerminalRuleCall_1_0_1()); 

            }

             after(grammarAccess.getTaskMetricAccess().getTasksTaskCrossReference_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TaskMetric__TasksAssignment_1"


    // $ANTLR start "rule__ArtefactMetric__NameAssignment_1"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1510:1: rule__ArtefactMetric__NameAssignment_1 : ( RULE_STRING ) ;
    public final void rule__ArtefactMetric__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1514:1: ( ( RULE_STRING ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1515:1: ( RULE_STRING )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1515:1: ( RULE_STRING )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1516:1: RULE_STRING
            {
             before(grammarAccess.getArtefactMetricAccess().getNameSTRINGTerminalRuleCall_1_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ArtefactMetric__NameAssignment_13019); 
             after(grammarAccess.getArtefactMetricAccess().getNameSTRINGTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArtefactMetric__NameAssignment_1"


    // $ANTLR start "rule__ArtefactMetric__ArtefactsAssignment_2"
    // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1525:1: rule__ArtefactMetric__ArtefactsAssignment_2 : ( ( RULE_STRING ) ) ;
    public final void rule__ArtefactMetric__ArtefactsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1529:1: ( ( ( RULE_STRING ) ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1530:1: ( ( RULE_STRING ) )
            {
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1530:1: ( ( RULE_STRING ) )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1531:1: ( RULE_STRING )
            {
             before(grammarAccess.getArtefactMetricAccess().getArtefactsArtifactCrossReference_2_0()); 
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1532:1: ( RULE_STRING )
            // ../br.ufrn.dimap.MetricDslLanguage.ui/src-gen/br/ufrn/dimap/MetricDslLanguage/ui/contentassist/antlr/internal/InternalMetricDsl.g:1533:1: RULE_STRING
            {
             before(grammarAccess.getArtefactMetricAccess().getArtefactsArtifactSTRINGTerminalRuleCall_2_0_1()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ArtefactMetric__ArtefactsAssignment_23054); 
             after(grammarAccess.getArtefactMetricAccess().getArtefactsArtifactSTRINGTerminalRuleCall_2_0_1()); 

            }

             after(grammarAccess.getArtefactMetricAccess().getArtefactsArtifactCrossReference_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArtefactMetric__ArtefactsAssignment_2"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleModel_in_entryRuleModel61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleModel68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__MetricsAssignment_in_ruleModel94 = new BitSet(new long[]{0x0000000000000012L});
    public static final BitSet FOLLOW_ruleMetrics_in_entryRuleMetrics122 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMetrics129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__0_in_ruleMetrics155 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleActivityMetric_in_entryRuleActivityMetric182 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleActivityMetric189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group__0_in_ruleActivityMetric215 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTaskMetric_in_entryRuleTaskMetric242 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTaskMetric249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TaskMetric__Group__0_in_ruleTaskMetric275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArtefactMetric_in_entryRuleArtefactMetric302 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArtefactMetric309 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ArtefactMetric__Group__0_in_ruleArtefactMetric335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MetricType__Alternatives_in_ruleMetricType372 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ColectType__Alternatives_in_ruleColectType408 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MetricUnit__Alternatives_in_ruleMetricUnit444 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleActivityMetric_in_rule__Metrics__DetailsAlternatives_8_0479 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTaskMetric_in_rule__Metrics__DetailsAlternatives_8_0496 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArtefactMetric_in_rule__Metrics__DetailsAlternatives_8_0513 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__MetricType__Alternatives546 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__MetricType__Alternatives567 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__MetricType__Alternatives588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__ColectType__Alternatives624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__ColectType__Alternatives645 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__MetricUnit__Alternatives681 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__MetricUnit__Alternatives702 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__MetricUnit__Alternatives723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__0__Impl_in_rule__Metrics__Group__0756 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_rule__Metrics__Group__1_in_rule__Metrics__Group__0759 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__NameAssignment_0_in_rule__Metrics__Group__0__Impl786 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__1__Impl_in_rule__Metrics__Group__1816 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Metrics__Group__2_in_rule__Metrics__Group__1819 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__Metrics__Group__1__Impl847 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__2__Impl_in_rule__Metrics__Group__2878 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_rule__Metrics__Group__3_in_rule__Metrics__Group__2881 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__RelatesToAssignment_2_in_rule__Metrics__Group__2__Impl908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__3__Impl_in_rule__Metrics__Group__3938 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_rule__Metrics__Group__4_in_rule__Metrics__Group__3941 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_3__0_in_rule__Metrics__Group__3__Impl968 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__4__Impl_in_rule__Metrics__Group__4998 = new BitSet(new long[]{0x0000000000C00000L});
    public static final BitSet FOLLOW_rule__Metrics__Group__5_in_rule__Metrics__Group__41001 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_4__0_in_rule__Metrics__Group__4__Impl1028 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__5__Impl_in_rule__Metrics__Group__51058 = new BitSet(new long[]{0x0000000000C00000L});
    public static final BitSet FOLLOW_rule__Metrics__Group__6_in_rule__Metrics__Group__51061 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_5__0_in_rule__Metrics__Group__5__Impl1088 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__6__Impl_in_rule__Metrics__Group__61119 = new BitSet(new long[]{0x000000001B000000L});
    public static final BitSet FOLLOW_rule__Metrics__Group__7_in_rule__Metrics__Group__61122 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_6__0_in_rule__Metrics__Group__6__Impl1149 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__7__Impl_in_rule__Metrics__Group__71179 = new BitSet(new long[]{0x000000001B000000L});
    public static final BitSet FOLLOW_rule__Metrics__Group__8_in_rule__Metrics__Group__71182 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_7__0_in_rule__Metrics__Group__7__Impl1209 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group__8__Impl_in_rule__Metrics__Group__81240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__DetailsAssignment_8_in_rule__Metrics__Group__8__Impl1267 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_3__0__Impl_in_rule__Metrics__Group_3__01315 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Metrics__Group_3__1_in_rule__Metrics__Group_3__01318 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__Metrics__Group_3__0__Impl1346 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_3__1__Impl_in_rule__Metrics__Group_3__11377 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__DescriptionAssignment_3_1_in_rule__Metrics__Group_3__1__Impl1404 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_4__0__Impl_in_rule__Metrics__Group_4__01438 = new BitSet(new long[]{0x0000000000003800L});
    public static final BitSet FOLLOW_rule__Metrics__Group_4__1_in_rule__Metrics__Group_4__01441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Metrics__Group_4__0__Impl1469 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_4__1__Impl_in_rule__Metrics__Group_4__11500 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__TypeAssignment_4_1_in_rule__Metrics__Group_4__1__Impl1527 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_5__0__Impl_in_rule__Metrics__Group_5__01561 = new BitSet(new long[]{0x000000000000C000L});
    public static final BitSet FOLLOW_rule__Metrics__Group_5__1_in_rule__Metrics__Group_5__01564 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Metrics__Group_5__0__Impl1592 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_5__1__Impl_in_rule__Metrics__Group_5__11623 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__FormAssignment_5_1_in_rule__Metrics__Group_5__1__Impl1650 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_6__0__Impl_in_rule__Metrics__Group_6__01684 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Metrics__Group_6__1_in_rule__Metrics__Group_6__01687 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Metrics__Group_6__0__Impl1715 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_6__1__Impl_in_rule__Metrics__Group_6__11746 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__IdAssignment_6_1_in_rule__Metrics__Group_6__1__Impl1773 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_7__0__Impl_in_rule__Metrics__Group_7__01807 = new BitSet(new long[]{0x0000000000070000L});
    public static final BitSet FOLLOW_rule__Metrics__Group_7__1_in_rule__Metrics__Group_7__01810 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Metrics__Group_7__0__Impl1838 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__Group_7__1__Impl_in_rule__Metrics__Group_7__11869 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__UnitAssignment_7_1_in_rule__Metrics__Group_7__1__Impl1896 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group__0__Impl_in_rule__ActivityMetric__Group__01930 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group__1_in_rule__ActivityMetric__Group__01933 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group_0__0_in_rule__ActivityMetric__Group__0__Impl1960 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group__1__Impl_in_rule__ActivityMetric__Group__11990 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group_1__0_in_rule__ActivityMetric__Group__1__Impl2017 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group_0__0__Impl_in_rule__ActivityMetric__Group_0__02052 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group_0__1_in_rule__ActivityMetric__Group_0__02055 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__ActivityMetric__Group_0__0__Impl2083 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group_0__1__Impl_in_rule__ActivityMetric__Group_0__12114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__ActivityBeginAssignment_0_1_in_rule__ActivityMetric__Group_0__1__Impl2141 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group_1__0__Impl_in_rule__ActivityMetric__Group_1__02175 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group_1__1_in_rule__ActivityMetric__Group_1__02178 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__ActivityMetric__Group_1__0__Impl2206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__Group_1__1__Impl_in_rule__ActivityMetric__Group_1__12237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ActivityMetric__ActivityEndAssignment_1_1_in_rule__ActivityMetric__Group_1__1__Impl2264 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TaskMetric__Group__0__Impl_in_rule__TaskMetric__Group__02298 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__TaskMetric__Group__1_in_rule__TaskMetric__Group__02301 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__TaskMetric__Group__0__Impl2329 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TaskMetric__Group__1__Impl_in_rule__TaskMetric__Group__12360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TaskMetric__TasksAssignment_1_in_rule__TaskMetric__Group__1__Impl2387 = new BitSet(new long[]{0x0000000000000012L});
    public static final BitSet FOLLOW_rule__ArtefactMetric__Group__0__Impl_in_rule__ArtefactMetric__Group__02422 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ArtefactMetric__Group__1_in_rule__ArtefactMetric__Group__02425 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__ArtefactMetric__Group__0__Impl2453 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ArtefactMetric__Group__1__Impl_in_rule__ArtefactMetric__Group__12484 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ArtefactMetric__Group__2_in_rule__ArtefactMetric__Group__12487 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ArtefactMetric__NameAssignment_1_in_rule__ArtefactMetric__Group__1__Impl2514 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ArtefactMetric__Group__2__Impl_in_rule__ArtefactMetric__Group__22544 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ArtefactMetric__ArtefactsAssignment_2_in_rule__ArtefactMetric__Group__2__Impl2571 = new BitSet(new long[]{0x0000000000000012L});
    public static final BitSet FOLLOW_ruleMetrics_in_rule__Model__MetricsAssignment2613 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Metrics__NameAssignment_02644 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Metrics__RelatesToAssignment_22679 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Metrics__DescriptionAssignment_3_12714 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMetricType_in_rule__Metrics__TypeAssignment_4_12745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleColectType_in_rule__Metrics__FormAssignment_5_12776 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Metrics__IdAssignment_6_12807 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMetricUnit_in_rule__Metrics__UnitAssignment_7_12838 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Metrics__DetailsAlternatives_8_0_in_rule__Metrics__DetailsAssignment_82869 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__ActivityMetric__ActivityBeginAssignment_0_12906 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__ActivityMetric__ActivityEndAssignment_1_12945 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__TaskMetric__TasksAssignment_12984 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__ArtefactMetric__NameAssignment_13019 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__ArtefactMetric__ArtefactsAssignment_23054 = new BitSet(new long[]{0x0000000000000002L});

}